package com.ys.comapable;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;

/**
 * 描述: 比较器测试类
 *   ------ 内部比较器  耦合度高,要与 实现类 具体互动
 *
 * @author CodeYang
 * @version 2020/12/18 15:14
 */
public class 内部比较器测试类 {

    public static void main(String[] args) {
      method2();
    }

    /**
     * 比较排序--应用-根据学生的分数
     */
    private void method() {
        // 1 初始化对象数组
        Student[] arr = new Student[5];
        arr[0] = new Student("sn", 19);
        arr[1] = new Student("cl", 25);
        arr[2] = new Student("cl", 23);
        arr[3] = new Student("hs", 23);
        arr[4] = new Student("ys", 20);
        // 2 排序---> 自定义比较器排序
        // 这里 传递的是 arr-->编译时 和 运行时 类型都是 Student
        ArrayUtil.sort(arr);

        for (Student student : arr) {
            System.out.println(student.toString());

        }


    }
    /**
     * 比较排序--应用-根据狗子 size 降序排序
     */
    private static void method2() {
        // 1 初始化对象数组
        Dog[] arr = new Dog[5];
        arr[0] = new Dog("sn", 19,2.3);
        arr[1] = new Dog("cl", 25,3.0);
        arr[2] = new Dog("cl", 2,2.5);
        arr[3] = new Dog("hs", 23,23.5);
        arr[4] = new Dog("ys", 20,6.5);
        // 2 排序---> 自定义比较器排序
        // 这里 传递的是 arr-->编译时 和 运行时 类型都是 Student
      //  ArrayUtil.sort(arr);
        // 使用Arrays.sort  Java.lang.Comparable 中的 内部接口 实现类 实现即可,使用规则,与我们一样
        Arrays.sort(arr);

        for (Dog dog : arr) {
            System.out.println(dog.toString());

        }


    }
}
